package game;

import com.sun.org.apache.bcel.internal.generic.INSTANCEOF;
import school.Course;

import java.util.*;

/**
 * 1、洗牌
 * 2、创建2个玩家，发牌每人2张,比较谁手里的牌最大
 * 3、开始游戏，比较大小，相同数字按照花色比对黑>红>花>方片
 */
public class playGame {
    private static Scanner scanner = new Scanner(System.in);

    /**
     *用来判断控制台输入的数据是否是整数
     */
    public static int getIntId(){

        String inputLine = scanner.nextLine();
        int id = 0;
        while (true) {
            if (isInt(inputLine)) {

                id = Integer.parseInt(inputLine);
                return id;

            } else {
                System.out.println("输入不合法！请重新输入玩家序号（整数形式）：");
                inputLine = scanner.nextLine();
            }
        }

    }
    //判断是否为整数
    public static boolean isInt(String str) {

        try {
            Integer.parseInt(str);
            return true;

        } catch (Exception e) {

        }
        return false;
    }


    public static void main(String[] args) {
        CardList cl = new CardList();
        cl.addCardList();
        //输出一副牌
        cl.getCard();

        //创建玩游戏的人
        System.out.println();
        System.out.println("请输入第一个游戏玩家的序号:");
        int id=getIntId();
        System.out.println("请输入第一个游戏玩家的名字:");
        String name = scanner.nextLine();
        People p1 = new People(id, name);
        System.out.println("请输入第二个游戏玩家的序号:");
        int id2=getIntId();
        System.out.println("请输入第二个游戏玩家的名字:");
        String name2=scanner.nextLine();
        People p2=new People(id2,name2);
        System.out.println("两个玩家分别是："+p1.getName()+" 和 "+p2.getName());
        System.out.println("——————————开始游戏——————————");
        //洗牌
        Collections.shuffle(cl.getCardList());
        //输出洗牌后的一副牌
        cl.getCard();
        System.out.println();
        System.out.println("——————————开始发牌！——————————");
        //第一张给玩家1，第二张给玩家2；第三张给玩家1，第四张给玩家2
        Card cd=(Card) cl.getCardList().get(0);
        p1.setPeopleCardList(cd);
        Card cd2=(Card) cl.getCardList().get(1);
        p2.setPeopleCardList(cd2);
        Card cd3=(Card) cl.getCardList().get(2);
        p1.setPeopleCardList(cd3);
        Card cd4=(Card) cl.getCardList().get(3);
        p2.setPeopleCardList(cd4);
        System.out.println("第一个人的牌："+cd.getColour()+cd.getNumber()+"和"+cd3.getColour()+cd3.getNumber());
        System.out.println("第二个人的牌："+cd2.getColour()+cd2.getNumber()+"和"+cd4.getColour()+cd4.getNumber());
        System.out.println("开始出牌，比赛结果是：");

        //创建整数的List表，排序，结果是由小到大
        List<Integer> sortStr=new ArrayList<Integer>();
        sortStr.add(cd.getRealNum());
        sortStr.add(cd2.getRealNum());
        sortStr.add(cd3.getRealNum());
        sortStr.add(cd4.getRealNum());
        Collections.sort(sortStr);
        //取最后一个值进行比较，最大的匹配玩家手中的牌，相等的就是获胜方
        if(cd.getRealNum()==sortStr.get(3)||cd3.getRealNum()==sortStr.get(3)){
            System.out.println("获胜者是："+p1.getName());
        }else {
            System.out.println("获胜者是："+p2.getName());
        }


    }
}
